package test18;

import java.io.*;
import java.util.*;


//https://www.nowcoder.com/practice/43072d50a6eb44d2a6c816a283b02036?tpId=37&tqId=21294&ru=/exam/oj

// 测试用例太少，牛客能过，但可能有未知问题
//public class Main1 {
//    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        String str1 = scanner.nextLine().toLowerCase();
//        String str2 = scanner.nextLine().toLowerCase();
//        int n1 = str1.length();
//        int n2 = str2.length();
//        int j = 0;
//        for (int i = 0; i < n1; i++) {
//            while (i < n1 && str1.charAt(i) == '?') {
//                i++;
//                j++;
//            }
//            if (i < n1 && str1.charAt(i) == '*') {
//                while (i < n1 && (str1.charAt(i) == '*' || str1.charAt(i) == '?')) {
//                    i++;
//                }
//                if (i != n1) {
//                    while (j < n2 && str2.charAt(j) != str1.charAt(i)) {
//                        char c = str2.charAt(j);
//                        if (!Character.isLetter(c) && !Character.isDigit(c)) {
//                            System.out.println(false);
//                            return;
//                        }
//                        j++;
//                    }
//                    while (j < n2 - 1 && str2.charAt(j) == str2.charAt(j + 1)) {
//                        j++;
//                    }
//
//                }
//            }
//            if (i == n1) {
//                System.out.println(true);
//                return;
//            } else if (j < n2 && str1.charAt(i) == str2.charAt(j)){
//                j++;
//            } else {
//                System.out.println(false);
//                return;
//            }
//        }
//        System.out.println(j == n2);
//    }
//}

//正则表达式
//https://www.bejson.com/knownjson/regexJiaocheng/

import java.util.*;
import java.io.*;

/**
 * 实现通配符
 * ? 匹配一个字符  [0-9A-Za-z]{1}
 * * 匹配0个或以上的字符  [0-9A-Za-z]{0,}
 * （字符由英文字母和数字0-9组成，不区分大小写。下同）
 */
public class Main1 {
    public static void main(String[] args) throws IOException {
//        Scanner scanner = new Scanner(System.in);
//        String regex = scanner.nextLine();
//        String str = scanner.nextLine();
// * 通配符过多就会超时，scanner 和 br 都不行
// 必须对 * 进行处理
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String regex;
        while ((regex = bufferedReader.readLine()) != null) {
            regex = regex.toLowerCase();
            String str = bufferedReader.readLine().toLowerCase();
            //        regex = regex.replaceAll("\\?", "\\\\w{1}");
//        regex = regex.replaceAll("\\*", "\\\\w{0,}");
//        regex = regex.replaceAll("\\.", "\\\\.");
            // 减少 * 的个数，相邻的2个以上合并为1个
            regex = regex.replaceAll("\\*{2,}", "\\*");

            regex = regex.replaceAll("\\?", "[a-z0-9]{1}");
            regex = regex.replaceAll("\\*", "[a-z0-9]{0,}");
            regex = regex.replaceAll("\\.", "\\\\.");
            System.out.println(str.matches(regex));
        }


    }
}